package com.homework.phase1.module3;
//1. 编程题
//
// 编程统计字符串"ABCD123!@#$%ab"中大写字母、小写字母、数字、其它字符的个数并打 印出来。
public class Homework1 {
    public static void main(String[] args) {

        //创建字符串记录字符
        String s1 = "ABCD123!@#$%ab";

        //创建正则表达式判断字符串内的不同字符
        String reg1 = "[A-Z]";
        String reg2 = "[a-z]";
        String reg3 = "[0-9]";
        //String reg4 = "[^a-zA-Z0-9]";

        //创建计数器统计不同字符的个数
        int upperCaseCount = 0;
        int lowerCaseCount = 0;
        int numCount = 0;
        int otherCount = 0;

        //对字符串进行遍历
        for (int i = 0; i < s1.length(); i++) {

            //取出每个位置上的字符，从char转换为String
            String ch = String.valueOf(s1.charAt(i));
            //System.out.println(ch);
            //对每个字符进行正则匹配，匹配上则计数器加1
            if (ch.matches(reg1)) {

                upperCaseCount++;

            } else if (ch.matches(reg2)) {

                lowerCaseCount++;

            } else if (ch.matches(reg3)) {

                numCount++;

            } else {

                otherCount++;

            }
        }
        System.out.println("大写字母的个数为：" + upperCaseCount);
        System.out.println("小写字母的个数为：" + lowerCaseCount);
        System.out.println("数字的个数为：" + numCount);
        System.out.println("其他字符的个数为：" + otherCount);
    }
}
